Version control software allows developers to obtain a copy of source code for a computer program, make changes to the source code, and then save those changes as a version of the source code for later use. However, when multiple developers are working on the same source code, there can be merging conflicts when the changes are ready to be applied. In particular, typical version control software is text-based and, when merging is performed on multiple copies of modified source code, the version control software will introduce errors that are the result of typographical or semantic preferences. For example, one developer may prefer to use braces at one point of his or her source code, whereas another developer may prefer to use braces at another point. These types of typographical differences introduce errors into the merged source code that could have been otherwise avoided.
Further still, when the version control software attempts to merge modified source code from different developers, the standard version control software often reports merge conflicts that are the result of formatting choices or other modifications that have no bearing on the semantics of the actual source code. In addition, each time a merge conflict is detected and requires manual resolution. Thus, text-based version control software often has a higher rate of merge conflicts that could be avoided and reduce the time needed to commit changes to source code.
The headings provided herein are merely for convenience and do not necessarily affect the scope or meaning of the terms used.